package Tree;

/**
 * 104.二叉树的最大深度
 * 给定一个二叉树 root ，返回其最大深度。
 * 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
 * 既可以用层序遍历也可以使用递归
 */
public class maxDepth {
    public int maxDepth(TreeNode root) {
        if (root == null)
            return 0;
        int leftdepth = maxDepth(root.left);
        int rightdepth = maxDepth(root.right);
        int depth = Math.max(leftdepth, rightdepth) + 1;
        return depth;
    }

    /**
     * 精简版
     * hot100一刷
     * hot100二刷
     */
    public int maxDepth1(TreeNode root) {
        if (root == null)
            return 0;
        return Math.max(maxDepth(root.left),maxDepth(root.right))+1;
    }
}
